package com.qunar.paydata.platform.common.util;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
/**
 * 
 * @author leonyang.liu
 *
 */

public class QunarDateUtil {
	 private static SimpleDateFormat sdf_yMdHsm = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
	    private static SimpleDateFormat sdf_y_M_d = new SimpleDateFormat("yyyy-MM-dd");
	    private static SimpleDateFormat sdf_yMd = new SimpleDateFormat("yyyyMMdd");

	    /**
	     * 将当前时间转为时间字符串
	     * @return
	     */
	    public static String formatCurrentTime() {
	        return sdf_yMdHsm.format(new Date());
	    }

	    /**
	     * 将时间转为时间字符串
	     * @return
	     */
	    public static String formatTime(Date date) {
	        return date == null ? null : sdf_yMdHsm.format(date);
	    }

	    /**
	     * 将当前时间转为日期字符串
	     * @return
	     */
	    public static String formatCurrentDate() {
	        return sdf_y_M_d.format(new Date());
	    }

	    /**
	     * 将时间转为日期字符串 yyyy-MM-dd
	     * @return
	     */
	    public static String formatDate(Date date) {
	        return date == null ? null : sdf_y_M_d.format(date);
	    }
	    
	    /**
	     * 将时间转为日期字符串yyyyMMdd
	     * @param date
	     * @return
	     */
	    public static String formatDateToYMD(Date date) {
	    	return date == null ? null : sdf_yMd.format(date);
	    }
	    
	    /**
	     * 得到当前时间的10位unix时间戳
	     * @return
	     */
	    public static Long tenUnixTimestamp() {
	        return new Date().getTime()/1000;
	    }
	    
	    /**
	     * 将日期Y-M-D字符串 转为 Date类型
	     * @param ymdStr
	     * @return
	     */
	    public static Date parseDate(String ymdStr) {
	    	try {
				return sdf_y_M_d.parse(ymdStr);
			} catch (ParseException e) {
			}
	    	return null;
	    }
	    
	    /**
	     * 将日期YMD字符串 转为 Date类型
	     * @param ymdStr
	     * @return
	     */
	    public static Date parseDateYMD(String ymdStr) {
	    	try {
				return sdf_yMd.parse(ymdStr);
			} catch (ParseException e) {
			}
	    	return null;
	    }
	    
	    /**
	     * 将日期YMDHmS字符串 转为 Date类型
	     * @param ymdStr
	     * @return
	     */
	    public static Date parseTime(String ymdhMsStr) {
	    	try {
				return sdf_yMdHsm.parse(ymdhMsStr);
			} catch (ParseException e) {
			}
	    	return null;
	    }
}
